I’ve been a professional software engineer and maintaining open-source software for 16 years. My work on open source has been heavily informed by industry best practises and my work on proprietary software has been heavily informed by open source best practises. Without these books, I’d be a worse engineer on many dimensions. Some of them may feel antiquated but all are still full of relevant wisdom for every open-source (and proprietary) software engineer today.
I was introduced to this book in a Human-Computer Interaction course at university but most of it barely mentions computers at all. It radically changed the way I thought about design of all everything, including all the software I have written since, to aim to be as intuitive and natural as possible.
Tip: read this on paper or on an iPad rather than an iPhone or Kindle as the pictures as essential.
Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door. The fault, argues this ingenious,even liberating,book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary relationships between controls and functions, coupled with a lack of feedback or other assistance and unreasonable demands on memorization. The Design of Everyday Things shows that good, usable design is possible. The…
I was lucky enough to read an early draft of this book and it’s simply the best analysis of the open-source software ecosystem around today.
The writing style is friendly and not formal despite the academic-level research that went into this book. It made me think differently about the open-source projects I maintain and how I interact and chose those I use.
An inside look at modern open source software development and its influence on our online social world.
Open source software, in which developers publish code that anyone can use, has long served as a bellwether for other online behavior. In the late 1990s, it provided an optimistic model for public collaboration, but in the last 20 years it’s shifted to solo operators who write and publish code that's consumed by millions.
In Working in Public, Nadia Eghbal takes an inside look at modern open source software development, its evolution over the last two decades, and its ramifications for an internet…
This is the oldest book on my list and is the most underrated. It describes, with serious rigour and detail, how to run more effective software projects and teams.
Most of this advice has been ignored by most of the industry for most of the time but it’s a big part of the reason I’ve worked from home for 14 years and am as productive as I am today.
Demarco and Lister demonstrate that the major issues of software development are human, not technical. Their answers aren't easy--just incredibly successful. New second edition features eight all-new chapters. Softcover. Previous edition: c1987. DLC: Management.
This is from an older generation of open source development, pre-GitHub, but much of the advice here is still incredibly relevant and astute today, helping provide advice on the interpersonal as well as technical sides to open source development.
Many of the underlying principles from this book are what form my grounding as an open-source maintainer for the last 15 years.
The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their time and energy to create better software. The truth is, however, that the overwhelming majority of free software projects fail. To help you beat the odds, O'Reilly has put together Producing Open Source Software, a guide that recommends tried and true steps to help free software developers work together toward a common goal. Not just for…
Another book that predates GitHub but provides a lot of actionable advice today that’s been mostly ignored across much of our industry.
Hard problems like “why isn’t my software project reliable?” are tackled head-on and addressed here. It was an early nudge for me to automate as much as possible in software projects and not ignore difficult problems with project organisation in favour of “fun” technical tasks.
"Ship It!" is a collection of tips that show the tools and techniques a successful project team has to use, and how to use them well. You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world. Aimed at beginning to intermediate programmers, "Ship It!" will show you: which tools help, and which don't, how to keep a project moving, approaches to scheduling that work, how to build…
I spent 20 years leading global teams in Silicon Valley, and I had few role models for empathetic, human, and inclusive leadership. I was committed to being the leader I wished I’d had all those years. I had a lot of success, a big VP-level job, and I loved my work. Then, I got a new manager who bullied, undermined, and silenced me. I decided I wanted to help leaders do better. I became an author, speaker, and consultant focused on inspiring leaders to create an environment where everyone is heard, seen, and respected.
To create innovative, collaborative, and high-performing organizations, we need a new leadership model.
Speaker, consultant, and former Silicon Valley executive Minette Norman is committed to inspiring leaders by sharing some of the most important things she learned over the decades she spent in the corporate world, such as: every human being needs to feel they belong; teams thrive when everyone can share their unique ideas and experiences; innovation is a group activity; empathy and compassion are leadership superpowers; and, leaders set the tone by what they say, do, reward, and tolerate.
This is not a book about quick fixes or…
The Boldly Inclusive Leader: Transform Your Workplace (and the World) by Valuing the Differences Within
Git in Practice is a collection of 66 tested techniques that will optimize the way you and your team manage your development projects. The book begins with a brief reminder of the core version control concepts you need when using Git and moves on to the high-value features you may not have explored yet. Then, you'll dig into cookbook-style techniques like history visualization, advanced branching, and rewriting history each presented in a problem-solution-discussion format. Finally, you'll work out how to use Git to its full potential through configuration, team workflows, submodules, and using GitHub pull requests effectively.